<template>
  <div class="content">
    <div class="progress">
      <div class="cancel">
        <!-- <el-progress class="layui-progress-bar" :show-text="false" :stroke-width="26" :percentage="70"></el-progress> -->

        <div class="cont">
          <div class="anim"
            :class="{ don: !($store.state.download_link?.code == 200), no: ($store.state.download_link?.code == 200) }">
          </div>
        </div>

        <el-button @click="handleCancel">Cancel</el-button>

      </div>
      <div class="upload">
        <!-- <div>State:Success!/Failure/Cancel!</div> -->
        <div v-if="!$store.state.download_link">State:Pending</div>
        <div v-else>State:{{ $store.state.download_link?.code == 200 ? 'Success' :
          cancel ? 'Cancel' : $store.state.download_link == '500' ? "Failure" : " ..." }}</div>

        <!-- <div v-else>State:{{ $store.state.download_link?.code == 200 ? 'Success' :
          cancel ? 'Cancel' : "Failure" }}</div> -->
        <el-button @click="handleUpload" :disabled="!$store.state.download_link.code == 200">
          Return to Upload
        </el-button>
      </div>

      <div class="down" v-if="($store.state.download_link?.code == 200)">
        <div class="img">
          <!-- <span>icon</span> -->
          <img src="@/assets/img/down_img.png" />
          <span>{{ $store.state.download_link?.data?.download_link.split('/').reverse()[0] }}</span>
        </div>

        <el-button @click="handleDownload" :disabled="!$store.state.download_link?.code == 200 || cancel">
          Download
        </el-button>

      </div>
    </div>

    <div class="mume markdown-preview content_mume">
      <h1 class="mume-header" id="exclamation-view-the-textgrid-file">
        &#x2757;&#xFE0F; View the textgrid file
      </h1>

      <ul>
        <li>
          After getting your results files in the format of
          <em><strong>.TextGrid</strong></em>, you can view and analyze them in &#x1F533;
          <em><strong>Praat</strong></em>, a software which can be downloaded from the website:
        </li>
      </ul>
      <blockquote>
        <p>
          <a href="https://www.fon.hum.uva.nl/praat/">https://www.fon.hum.uva.nl/praat/</a>
        </p>
      </blockquote>
      <ul>
        <li>
          Example:<br />
          <img src="@/assets/img/praat_example.png" alt title="praat example" />
        </li>
      </ul>
    </div>
  </div>
</template>

<script>
import { text_cancel, state } from "@/api/tools.js";
export default {
  name: 'down',
  data() {
    return {
      cancel: false, // 是否取消成功
      timer: null, // 清除定时器
      animation: true, // download 动画
    }
  },
  mounted() {
    // this.timer = setInterval(() => {
    //   state().then(res => {
    //     console.log('res', res)
    //   }).catch(err => console.log('err', err))
    // }, 1000)

    setTimeout(() => {
      this.animation = false
    }, 5000)
  },
  destroyed() {
    // 页面销毁，清除清除定时器
    clearInterval(this.timer)
    this.$store.commit('handleClearMemory')
  },

  methods: {
    handleCancel() {
      text_cancel({}).then(res => {
        const { code } = res || {}
        if (code == 200) {
          this.cancel = true
          this.$message.success('Cancellation successful')
        } else {
          this.cancel = false
          this.$message.warning('Cancellation failed')
        }
        console.log('res', res)
      }).catch(err => console.log('err', err))
    },
    handleUpload() {
      this.$store.commit('handleSetPage', {
        item: {
          newName: "Upload",
          show: true,
          path: "/tools/upload",
          name: "upload",
        },
        index: 0,
        router: this.$router
      })
    },
    handleDownload() {
      // console.log('Download', this.$store.state.download_link)
      // console.log('1111', this.$store.state.download_link.data.download_link.split('/').reverse()[0])
      window.open(this.$store.state.download_link?.data.download_link)
    },
  }
}
</script>

<style lang="less" scoped>
.content {
  padding: 30px;

  .down {
    .img {
      display: flex;
      align-items: center;

      img {
        width: 30px;
        margin: 0 5px;
      }
    }
  }

  .progress {
    // background-color: skyblue;



    .cancel {
      display: flex;
      justify-content: space-between;
      align-items: center;
      background-color: #d2d2d2;
      padding: 10px;
      border-radius: 10px;
      padding-right: 100px;

      .el-progress {
        width: 75%;
        height: 30px;
      }

      .el-button {
        background-color: #7f7f7f;
        color: #fff;
        width: 140px;
        height: 31px;
        line-height: 7px;
      }

      .anim {
        position: absolute;
        top: 0;
        width: 100%;
        height: 30px;
        background-size: 30px 30px;
        /*添加条纹背景*/
        background-image: linear-gradient(-135deg, transparent 15px, transparent 8px, #d8e0ff 9px, #d8e0ff 30px, transparent 21px, transparent 36px, #d8e0ff 37px);
        // animation: load 5s 1 linear forwards;
      }

      .don {
        animation: load 2s infinite;
      }

      .no {
        animation: load 2s 1 linear forwards;
      }


      .cont {
        flex: 1;
        height: 30px;
        position: relative;
        background-color: #cdd6ff;
        border-radius: 5px;
        overflow: hidden;
        margin-right: 40px;
      }

      @keyframes load {
        0% {
          width: 0;
        }

        100% {
          width: 100%;
        }
      }


    }

    .upload {
      margin: 20px 0px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      background-color: #b7d6a3;
      padding: 10px;
      border-radius: 10px;
      padding-right: 100px;

      div:nth-child(1) {
        margin-left: 35%;
        ;
        color: #fff;
      }

      .el-button {
        background-color: #93c275;
        color: #fff;
        width: 140px;
        height: 31px;
        line-height: 7px;
      }
    }

    .down {
      display: flex;
      justify-content: space-between;
      align-items: center;
      background-color: #f6be98;
      padding: 10px;
      border-radius: 10px;
      padding-right: 100px;

      div:nth-child(1) {
        margin-left: 10%;
        ;
      }

      .el-button {
        background-color: #f29e65;
        color: #fff;
        width: 140px;
        height: 31px;
        line-height: 7px;
      }
    }

  }
}

.content_mume {
  max-width: 1200px;
  margin: 20px auto;
}

code[class*="language-"],
pre[class*="language-"] {
  color: #333;
  background: none;
  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.4;

  -moz-tab-size: 8;
  -o-tab-size: 8;
  tab-size: 8;

  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
  padding: .8em;
  overflow: auto;
  /* border: 1px solid #ddd; */
  border-radius: 3px;
  /* background: #fff; */
  background: #f5f5f5;
}

/* Inline code */
:not(pre)>code[class*="language-"] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal;
  background: #f5f5f5;
}

.token.comment,
.token.blockquote {
  color: #969896;
}

.token.cdata {
  color: #183691;
}

.token.doctype,
.token.punctuation,
.token.variable,
.token.macro.property {
  color: #333;
}

.token.operator,
.token.important,
.token.keyword,
.token.rule,
.token.builtin {
  color: #a71d5d;
}

.token.string,
.token.url,
.token.regex,
.token.attr-value {
  color: #183691;
}

.token.property,
.token.number,
.token.boolean,
.token.entity,
.token.atrule,
.token.constant,
.token.symbol,
.token.command,
.token.code {
  color: #0086b3;
}

.token.tag,
.token.selector,
.token.prolog {
  color: #63a35c;
}

.token.function,
.token.namespace,
.token.pseudo-element,
.token.class,
.token.class-name,
.token.pseudo-class,
.token.id,
.token.url-reference .token.variable,
.token.attr-name {
  color: #795da3;
}

.token.entity {
  cursor: help;
}

.token.title,
.token.title .token.punctuation {
  font-weight: bold;
  color: #1d3e81;
}

.token.list {
  color: #ed6a43;
}

.token.inserted {
  background-color: #eaffea;
  color: #55a532;
}

.token.deleted {
  background-color: #ffecec;
  color: #bd2c00;
}

.token.bold {
  font-weight: bold;
}

.token.italic {
  font-style: italic;
}


/* JSON */
.language-json .token.property {
  color: #183691;
}

.language-markup .token.tag .token.punctuation {
  color: #333;
}

/* CSS */
code.language-css,
.language-css .token.function {
  color: #0086b3;
}

/* YAML */
.language-yaml .token.atrule {
  color: #63a35c;
}

code.language-yaml {
  color: #183691;
}

/* Ruby */
.language-ruby .token.function {
  color: #333;
}

/* Markdown */
.language-markdown .token.url {
  color: #795da3;
}

/* Makefile */
.language-makefile .token.symbol {
  color: #795da3;
}

.language-makefile .token.variable {
  color: #183691;
}

.language-makefile .token.builtin {
  color: #0086b3;
}

/* Bash */
.language-bash .token.keyword {
  color: #0086b3;
}

/* highlight */
pre[data-line] {
  position: relative;
  padding: 1em 0 1em 3em;
}

pre[data-line] .line-highlight-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  display: block;
  width: 100%;
}

pre[data-line] .line-highlight {
  position: absolute;
  left: 0;
  right: 0;
  padding: inherit 0;
  margin-top: 1em;
  background: hsla(24, 20%, 50%, .08);
  background: linear-gradient(to right, hsla(24, 20%, 50%, .1) 70%, hsla(24, 20%, 50%, 0));
  pointer-events: none;
  line-height: inherit;
  white-space: pre;
}

pre[data-line] .line-highlight:before,
pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-start);
  position: absolute;
  top: .4em;
  left: .6em;
  min-width: 1em;
  padding: 0 .5em;
  background-color: hsla(24, 20%, 50%, .4);
  color: hsl(24, 20%, 95%);
  font: bold 65%/1.5 sans-serif;
  text-align: center;
  vertical-align: .3em;
  border-radius: 999px;
  text-shadow: none;
  box-shadow: 0 1px white;
}

pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-end);
  top: auto;
  bottom: .4em;
}

html body {
  font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: #333;
  background-color: #fff;
  overflow: initial;
  box-sizing: border-box;
  word-wrap: break-word
}

html body>:first-child {
  margin-top: 0
}

html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6 {
  line-height: 1.2;
  margin-top: 1em;
  margin-bottom: 16px;
  color: #000
}

html body h1 {
  font-size: 2.25em;
  font-weight: 300;
  padding-bottom: .3em
}

html body h2 {
  font-size: 1.75em;
  font-weight: 400;
  padding-bottom: .3em
}

html body h3 {
  font-size: 1.5em;
  font-weight: 500
}

html body h4 {
  font-size: 1.25em;
  font-weight: 600
}

html body h5 {
  font-size: 1.1em;
  font-weight: 600
}

html body h6 {
  font-size: 1em;
  font-weight: 600
}

html body h1,
html body h2,
html body h3,
html body h4,
html body h5 {
  font-weight: 600
}

html body h5 {
  font-size: 1em
}

html body h6 {
  color: #5c5c5c
}

html body strong {
  color: #000
}

html body del {
  color: #5c5c5c
}

html body a:not([href]) {
  color: inherit;
  text-decoration: none
}

html body a {
  color: #08c;
  text-decoration: none
}

html body a:hover {
  color: #00a3f5;
  text-decoration: none
}

html body img {
  max-width: 100%
}

html body>p {
  margin-top: 0;
  margin-bottom: 16px;
  word-wrap: break-word
}

html body>ul,
html body>ol {
  margin-bottom: 16px
}

html body ul,
html body ol {
  padding-left: 2em
}

html body ul.no-list,
html body ol.no-list {
  padding: 0;
  list-style-type: none
}

html body ul ul,
html body ul ol,
html body ol ol,
html body ol ul {
  margin-top: 0;
  margin-bottom: 0
}

html body li {
  margin-bottom: 0
}

html body li.task-list-item {
  list-style: none
}

html body li>p {
  margin-top: 0;
  margin-bottom: 0
}

html body .task-list-item-checkbox {
  margin: 0 .2em .25em -1.8em;
  vertical-align: middle
}

html body .task-list-item-checkbox:hover {
  cursor: pointer
}

html body blockquote {
  margin: 16px 0;
  font-size: inherit;
  padding: 0 15px;
  color: #5c5c5c;
  background-color: #f0f0f0;
  border-left: 4px solid #d6d6d6
}

html body blockquote>:first-child {
  margin-top: 0
}

html body blockquote>:last-child {
  margin-bottom: 0
}

html body hr {
  height: 4px;
  margin: 32px 0;
  background-color: #d6d6d6;
  border: 0 none
}

html body table {
  margin: 10px 0 15px 0;
  border-collapse: collapse;
  border-spacing: 0;
  display: block;
  width: 100%;
  overflow: auto;
  word-break: normal;
  word-break: keep-all
}

html body table th {
  font-weight: bold;
  color: #000
}

html body table td,
html body table th {
  border: 1px solid #d6d6d6;
  padding: 6px 13px
}

html body dl {
  padding: 0
}

html body dl dt {
  padding: 0;
  margin-top: 16px;
  font-size: 1em;
  font-style: italic;
  font-weight: bold
}

html body dl dd {
  padding: 0 16px;
  margin-bottom: 16px
}

html body code {
  font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
  font-size: .85em !important;
  color: #000;
  background-color: #f0f0f0;
  border-radius: 3px;
  padding: .2em 0
}

html body code::before,
html body code::after {
  letter-spacing: -0.2em;
  content: "\00a0"
}

html body pre>code {
  padding: 0;
  margin: 0;
  font-size: .85em !important;
  word-break: normal;
  white-space: pre;
  background: transparent;
  border: 0
}

html body .highlight {
  margin-bottom: 16px
}

html body .highlight pre,
html body pre {
  padding: 1em;
  overflow: auto;
  font-size: .85em !important;
  line-height: 1.45;
  border: #d6d6d6;
  border-radius: 3px
}

html body .highlight pre {
  margin-bottom: 0;
  word-break: normal
}

html body pre code,
html body pre tt {
  display: inline;
  max-width: initial;
  padding: 0;
  margin: 0;
  overflow: initial;
  line-height: inherit;
  word-wrap: normal;
  background-color: transparent;
  border: 0
}

html body pre code:before,
html body pre tt:before,
html body pre code:after,
html body pre tt:after {
  content: normal
}

html body p,
html body blockquote,
html body ul,
html body ol,
html body dl,
html body pre {
  margin-top: 0;
  margin-bottom: 16px
}

html body kbd {
  color: #000;
  border: 1px solid #d6d6d6;
  border-bottom: 2px solid #c7c7c7;
  padding: 2px 4px;
  background-color: #f0f0f0;
  border-radius: 3px
}

@media print {
  html body {
    background-color: #fff
  }

  html body h1,
  html body h2,
  html body h3,
  html body h4,
  html body h5,
  html body h6 {
    color: #000;
    page-break-after: avoid
  }

  html body blockquote {
    color: #5c5c5c
  }

  html body pre {
    page-break-inside: avoid
  }

  html body table {
    display: table
  }

  html body img {
    display: block;
    max-width: 100%;
    max-height: 100%
  }

  html body pre,
  html body code {
    word-wrap: break-word;
    white-space: pre
  }
}

.markdown-preview {
  width: 100%;
  height: 100%;
  box-sizing: border-box
}

.markdown-preview .pagebreak,
.markdown-preview .newpage {
  page-break-before: always
}

.markdown-preview pre.line-numbers {
  position: relative;
  padding-left: 3.8em;
  counter-reset: linenumber
}

.markdown-preview pre.line-numbers>code {
  position: relative
}

.markdown-preview pre.line-numbers .line-numbers-rows {
  position: absolute;
  pointer-events: none;
  top: 1em;
  font-size: 100%;
  left: 0;
  width: 3em;
  letter-spacing: -1px;
  border-right: 1px solid #999;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none
}

.markdown-preview pre.line-numbers .line-numbers-rows>span {
  pointer-events: none;
  display: block;
  counter-increment: linenumber
}

.markdown-preview pre.line-numbers .line-numbers-rows>span:before {
  content: counter(linenumber);
  color: #999;
  display: block;
  padding-right: .8em;
  text-align: right
}

.markdown-preview .mathjax-exps .MathJax_Display {
  text-align: center !important
}

.markdown-preview:not([for="preview"]) .code-chunk .btn-group {
  display: none
}

.markdown-preview:not([for="preview"]) .code-chunk .status {
  display: none
}

.markdown-preview:not([for="preview"]) .code-chunk .output-div {
  margin-bottom: 16px
}

.scrollbar-style::-webkit-scrollbar {
  width: 8px
}

.scrollbar-style::-webkit-scrollbar-track {
  border-radius: 10px;
  background-color: transparent
}

.scrollbar-style::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background-color: rgba(150, 150, 150, 0.66);
  border: 4px solid rgba(150, 150, 150, 0.66);
  background-clip: content-box
}

html body[for="html-export"]:not([data-presentation-mode]) {
  position: relative;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  overflow: auto
}

html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview {
  position: relative;
  top: 0
}

@media screen and (min-width:914px) {
  html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview {
    padding: 2em calc(50% - 457px + 2em)
  }
}

@media screen and (max-width:914px) {
  html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview {
    padding: 2em
  }
}

@media screen and (max-width:450px) {
  html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview {
    font-size: 14px !important;
    padding: 1em
  }
}

@media print {
  html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn {
    display: none
  }
}

html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn {
  position: fixed;
  bottom: 8px;
  left: 8px;
  font-size: 28px;
  cursor: pointer;
  color: inherit;
  z-index: 99;
  width: 32px;
  text-align: center;
  opacity: .4
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn {
  opacity: 1
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc {
  position: fixed;
  top: 0;
  left: 0;
  width: 300px;
  height: 100%;
  padding: 32px 0 48px 0;
  font-size: 14px;
  box-shadow: 0 0 4px rgba(150, 150, 150, 0.33);
  box-sizing: border-box;
  overflow: auto;
  background-color: inherit
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar {
  width: 8px
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track {
  border-radius: 10px;
  background-color: transparent
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background-color: rgba(150, 150, 150, 0.66);
  border: 4px solid rgba(150, 150, 150, 0.66);
  background-clip: content-box
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a {
  text-decoration: none
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul {
  padding: 0 1.6em;
  margin-top: .8em
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc li {
  margin-bottom: .8em
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul {
  list-style-type: none
}

html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview {
  left: 300px;
  width: calc(100% - 300px);
  padding: 2em calc(50% - 457px - 150px);
  margin: 0;
  box-sizing: border-box
}

@media screen and (max-width:1274px) {
  html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview {
    padding: 2em
  }
}

@media screen and (max-width:450px) {
  html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview {
    width: 100%
  }
}

html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview {
  left: 50%;
  transform: translateX(-50%)
}

html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc {
  display: none
}
</style>
